iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0
DevOps

DevOps 好想學!新手也能打造雲端 Study Lab系列 第 4

Day04 - 在 GCE 建立第一個 Web Service

  • 分享至 

  • xImage
  •  

Day03 我們使用 GCE 建立一台 VM,今天要學習如何連線到虛擬機,並在伺服器上使用 NodeJS 建置簡易的 Web 服務。

連接虛擬機的方式

方案一 透過 SSH Key 登入

如果想使用自己的 Terminal 來連線至 VM ,可以透過 SSH 金鑰的方式。

  1. 輸入指令來產生 SSH Key
ssh-keygen
  1. 按 enter 選擇默認值
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

(輸出結果)

Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fw9uAk9ASgQ27Cf0I0pYmqySiB8Laqmd+uoU2Qc4Uek
The key's randomart image is:
+---[RSA 3072]----+
|   o=+o          |
|  ..=o. .        |
|.= *.o o         |
|+.+ *E= .        |
|+= o = .S.       |
|B + .   ...      |
|o+.o     +. o    |
|o+o.      oo.    |
|B=+        o. .  |
+----[SHA256]-----+

公私鑰就建立完成了,預設會存在 ~/.ssh 資料夾,,其中 id_rsa是私鑰,id_rsa.pub則是公鑰,接著把公鑰給複製起來放入 VM 裡,就能使用私鑰進行連線。

  1. 印出 Public Key
cat ~/.ssh/id_rsa.pub
  1. 將印出的 Public Key 複製下來
# 印出的全部都複製起來
ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXX user@computer.local
  1. 回到 GCP 網站,點擊console左上角 -> Compute Engine -> VM執行個體

  1. 點擊VM名稱

  1. 點選編輯

  1. 下拉找到SSH金鑰,點選顯示與編輯

  1. 輸入剛剛複製的 Public Key
  2. 點擊儲存

  1. 回到 VM 執行個體畫面,找到伺服器外部 IP

  1. 透過私鑰即可成功連線
ssh -i ~/.ssh/id_rsa <外部IP>

方案二 直接使用 Web Console 連線

GCE 也提供了 Web Console 服務,透過瀏覽器就能連線到 VM

  1. 回到 VM 執行個體畫面 -> 點擊 SSH 進行連線

成功連線後會跳出瀏覽器視窗。

Web Service

接著利用 NodeJS 建置簡單的 Web 服務,讓 Server 能對 Http 請求做出回應。

  1. 先透過 SSH Key 或 Web Console 的方式連線到 VM

  2. 更新伺服器

sudo apt-get update
  1. 安裝 Node 以及 Npm
sudo apt-get install -y nodejs npm
  1. 確認是否成功安裝
  • Node
node -v

(輸出結果)

v10.19.0
  • Npm
npm -v

(輸出結果)

6.14.4
  1. 建立專案資料夾
mkdir project && cd project
  1. 建立專案相關文件
  • package.json
cat > package.json <<EOF
{
    "dependencies": {
        "express": "*"
    },
    "scripts": {
        "start": "node app.js"
    }
}
EOF
  • app.js
cat > app.js <<EOF
const express = require('express')
const app = express()
const port = 80

app.get('/', (req, res) => {
  res.send('Hello IT-Home!!')
})

app.listen(port, () => {
  console.log('Example app listening at port %s', port)
})
EOF
  1. 安裝所需套件
npm install
  1. 啟動服務
sudo npm start&

(輸出結果)

[1] 12871
> @ start /home/justin89721/nodeProject
> node app.js
Example app listening at port 80
  1. 回到 VM 執行個體畫面,找到伺服器外部 IP

  1. 開啟瀏覽器,輸入網址後送出
http://<外部IP位址>

可以看到伺服器回傳訊息,最基本的 Web Service 就建立完成了。

  1. 若要關閉服務,可以用以下指令
sudo pkill -f node

總結

今天學會了如何連線至 VM 並進行簡單操作,除了 Node 之外也可以嘗試部署如 nginx 等其他的應用,但這種在 VM 建置服務是較傳統的方式,之後的文章中就會學習到如何使用 Container 將應用程式打包並運行。


上一篇
Day03 - 使用 Google Compute Engine 建立 VM
下一篇
Day05 - GCP 上的開發工具 Cloud Shell
系列文
DevOps 好想學!新手也能打造雲端 Study Lab30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言